.TH std::chrono::year::ok 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::chrono::year::ok \- std::chrono::year::ok

.SH Synopsis
   constexpr bool ok() const noexcept;  \fI(since C++20)\fP

   Checks if the year value stored in *this is in the valid range, i.e.,
   [-32767, 32767].

.SH Return value

   true if the year value stored in *this is in the range [-32767, 32767]. Otherwise
   false.

.SH Possible implementation

   See the implementations in libstdc++, libc++, and Howard Hinnant's date.h.

   class Year
   {
       short year_;   // exposition-only

   public:

       bool ok() const noexcept { return year_ != std::numeric_limits<short>::min(); }

       /*...*/
   };

.SH Example


// Run this code

 #include <chrono>
 #include <iomanip>
 #include <iostream>

 int main()
 {
     std::cout << "input year │ internal value │ ok()\\n" << std::boolalpha;

     for (const int i : {2020, 0x8000, 0x8001, 0xFFFF, 0x18000})
     {
         const std::chrono::year y{i};
         std::cout << std::setw(10) << i << " │ "
                   << std::setw(14) << static_cast<int>(y) << " │ "
                   << y.ok() << '\\n';
     }
 }

.SH Possible output:

 input year │ internal value │ ok()
       2020 │           2020 │ true
      32768 │         -32768 │ false
      32769 │         -32767 │ true
      65535 │             -1 │ true
      98304 │         -32768 │ false
